'use client'; import { useEffect, useMemo } from 'react'; import { ROUTES, ORDER_ROUTES } from '@theme/routes'; import { useGetBasketQuery } from '@akinon/next/data/client/basket'; import { pushCartView } from '@theme/utils/gtm'; import { Button, LoaderSpinner, Link } from '@theme/components'; import { BasketItem, Summary } from '@theme/views/basket'; import { useLocalization, useRouter } from '@akinon/next/hooks'; import PluginModule, { Component } from '@akinon/next/components/plugin-module'; import settings from '@theme/settings'; import { UNIFIED_VARIANTS } from '@theme/views/checkout/variants/registry'; export default function Page() { const { data: basket, isLoading, isSuccess } = useGetBasketQuery(); const { t } = useLocalization(); const router = useRouter(); const multiBasket = settings.plugins?.multiBasket ?? false; const checkoutVariant = (settings as { checkout?: { variant?: string } }) ?.checkout?.variant; const isUnifiedCheckout = useMemo( () => UNIFIED_VARIANTS.has(checkoutVariant ?? ''), [checkoutVariant] ); const hasItems = Boolean( basket?.basketitem_set && basket.basketitem_set.length > 0 ); useEffect(() => { if (isUnifiedCheckout && isSuccess && hasItems) { router.replace(ORDER_ROUTES.CHECKOUT); } }, [isUnifiedCheckout, isSuccess, hasItems, router]); useEffect(() => { if (isSuccess && hasItems) { const products = basket.basketitem_set.map((basketItem) => ({ ...basketItem.product })); pushCartView(products); } }, [basket, isSuccess, hasItems]); if (isUnifiedCheckout && (isLoading || (isSuccess && hasItems))) { return (
); } return (
{isLoading && (
)} {isSuccess && (hasItems ? ( <>

{t('basket.my_cart')}

{t('basket.back_to_shopping')}
) : (

{t('basket.empty.title')}

{t('basket.empty.content_first')}

{t('basket.empty.content_second')}.

))}
); }